﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Escuela.Forms;
//Escuela.Forms
namespace Escuela
{
    public partial class Alumnos : Form
    {
        protected int acep;
        private Instituto inst;

        public Alumnos(Instituto instituto)
        {
            InitializeComponent();
            this.inst = instituto;
        }

        private void Alumnos_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'escuelaDataSet.coop_alumno_GetAll' table. You can move, or remove it, as needed.
            this.coop_alumno_GetAllTableAdapter1.Fill(this.escuelaDataSet.coop_alumno_GetAll);
            // TODO: esta línea de código carga datos en la tabla 'dataSet1.coop_alumno_GetAll' Puede moverla o quitarla según sea necesario.
            //this.coop_alumno_GetAllTableAdapter.Fill(this.dataSet1.coop_alumno_GetAll);
            this.enlazarDataGrid();
        }

        private void Nuevo_Click(object sender, EventArgs e)
        {
            try
            {
                acep = 1;
                disableBtn();
                enableBox();
                limpiarBox();
                this.maskedNroAl.Enabled = false;
                //this.maskedfecIng.Visible = false;
                this.TextBoxfecIng.Visible = true;
                this.TextBoxfecIng.Enabled = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Se produjo un error al Habilitar campo para nuevo alumno" + ex.Message);
            }
        }

        private void alumnosBindingSource_CurrentChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (this.maskedNroAl.Text != null && this.maskedNroAl.Text.Trim() != "")
            {
                acep = 3;
                disableBtn();
            }
            else
            {
                MessageBox.Show("Debe Seleccionar un alumno", "Advertencia");
            }

        }

        private void button1_Click(object sender, EventArgs e)
        {
            acep = 4;
            this.maskedFecNac.Text = "";
            disableBtn();
            enableBox();
            limpiarBox();

            //Temporal
            this.maskedFecNac.Enabled = false;
            this.TextBoxfecIng.Enabled = false;
            this.TextBoxTelefono.Enabled = false;
            this.TextBoxCelular.Enabled = false;
            this.txtDir.Enabled = false;
            this.txtCorreo.Enabled = false;
              
        }

        private void Aceptar_Click(object sender, EventArgs e)
        {
            string where = null;
            
            //filtro dni
            string dni = null;
            try
            {
                //if (this.txtDNI.Text != null || this.txtDNI.Text.Trim() != "")
                //{
                //    where = "dni like '%" + this.txtDNI.Text.Replace(".", "").Trim() + "%' ";
                //}

                //nro alumno
                string nroAl = null;
                if (this.maskedNroAl.Text != null || this.maskedNroAl.Text.Trim() != "")
                {
                    where = where + "and idAlumno like '%" + this.maskedNroAl.Text.Trim() + "%' ";
                }

                //armo el string del where



                //alumnosBindingSource.Filter = where;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al buscar usuario: " + ex);
            }
        }

        //Para relacionar el datagrid con los datos
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //int i = this.dataGridView1.CurrentRow.Index;
            //if (i >= 0)
            //{
            //    string NroAl = dataGridView1.Rows[i].Cells[0].Value.ToString();
            //    this.maskedNroAl.Text = NroAl.Trim();

            //    string dni = dataGridView1.Rows[i].Cells[3].Value.ToString();
            //    this.txtDNI.Text = dni.Trim();

            //    string nombre = dataGridView1.Rows[i].Cells[1].Value.ToString();
            //    this.txtNom.Text = nombre.Trim();
                
            //    string apellido = dataGridView1.Rows[i].Cells[2].Value.ToString();
            //    this.txtApe.Text = apellido.Trim();

            //    string telefono = dataGridView1.Rows[i].Cells[5].Value.ToString();
            //    this.TextBoxTelefono.Text = telefono.Trim();

            //    string celular = dataGridView1.Rows[i].Cells[6].Value.ToString();
            //    this.TextBoxCelular.Text = celular.Trim();
                
            //    string fecNac = dataGridView1.Rows[i].Cells[4].Value.ToString();
            //    //this.maskedFecNac.Text = fecNac.Trim();
            //    this.maskedFecNac.Text = fecNac.Trim();

            //    //string fecIng = dataGridView1.Rows[i].Cells[11].Value.ToString();
            //    //this.TextBoxfecIng.Text = fecIng.Trim();

            //    string calle = dataGridView1.Rows[i].Cells[7].Value.ToString();
            //    this.txtCalle.Text = calle.Trim();

            //    string nro = dataGridView1.Rows[i].Cells[8].Value.ToString();
            //    this.maskNro.Text = nro.Trim();

            //    string dpto = dataGridView1.Rows[i].Cells[9].Value.ToString();
            //    this.txtDpto.Text = dpto.Trim();

            //    string localidad = dataGridView1.Rows[i].Cells[10].Value.ToString();
            //    this.txtLocalidad.Text = localidad.Trim();

            //    string email = dataGridView1.Rows[i].Cells[11].Value.ToString();
            //    this.txtCorreo.Text = email.Trim();            
            //}
        }

        private void Cancelar_Click(object sender, EventArgs e)
        {
            //if (acep == 1)
            //{
            //    limpiarBox();
            //}
            disableBox();
            enableBtn();
            //alumnosBindingSource.RemoveFilter();
        }

        private void Aceptar_Click_1(object sender, EventArgs e)
        {
            switch (acep)
            {
                #region Agregar
                case 1:
                    try
                    {
                        Alumno al = new Alumno();
                        al.nombre = this.txtNom.Text.ToString().Trim();
                        al.apellido = this.txtApe.Text.ToString().Trim();
                        al.dni = this.txtDNI.Text.ToString().Replace(".", "").Trim();
                        al.fechaDeNacimiento = Convert.ToDateTime(this.maskedFecNac.Text);
                        al.fechaDeIngreso = Convert.ToDateTime(this.TextBoxfecIng.Text);
                        al.telefono = this.TextBoxTelefono.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.celular = TextBoxCelular.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        //al.calle = txtCalle.Text.ToString().Trim();
                        //al.numero = Convert.ToInt32(maskNro.Text);
                        //al.departamento = this.txtDpto.Text.ToString();
                        //al.localidad = txtLocalidad.Text.ToString().Trim();
                        
                        //Direccion

                        al.direccion = txtDir.Text.ToString().Trim() + ";";
                        al.email = txtCorreo.Text.ToString();



                        if (this.inst.darDeAltaAlumno(al))
                        {
                            MessageBox.Show("Alumno agregado con Exito", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            limpiarBox();
                            disableBox();
                            // TODO: esta línea de código carga datos en la tabla 'dataSet1.coop_alumno_GetAll' Puede moverla o quitarla según sea necesario.
                            this.coop_alumno_GetAllTableAdapter1.Fill(this.escuelaDataSet.coop_alumno_GetAll);
                        }
                        else
                        {
                            MessageBox.Show("Error al agregar alumno verifique los datos ingresados", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }


                        //verif = al.agregarAlumno(al);
                        //if (verif != 0)
                        //{
                        //    MessageBox.Show("Alumno agregado con Exito");
                        //    limpiarBox();
                        //    disableBox();
                        //    // TODO: esta línea de código carga datos en la tabla 'escuelaDataSet.alumnos' Puede moverla o quitarla según sea necesario.
                        //    this.alumnosTableAdapter.Fill(this.escuelaDataSet.alumnos);
                        //}
                        //else
                        //{
                        //    MessageBox.Show("Error al agregar alumno verifique los datos ingresados");
                        //}
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error al agregar alumno" + ex.Message);
                    }                    
                    break;
                #endregion
                #region Editar
                case 2:
                    try
                    {
                        Alumno al = new Alumno();
                        al.id = Convert.ToInt32(this.maskedNroAl.Text.Trim());
                        al.nombre = this.txtNom.Text.ToString().Trim();
                        al.apellido = this.txtApe.Text.ToString().Trim();
                        al.dni = this.txtDNI.Text.ToString().Replace(".", "").Trim();
                        al.fechaDeNacimiento= Convert.ToDateTime(this.maskedFecNac.Text);
                        al.fechaDeIngreso = Convert.ToDateTime(this.TextBoxfecIng.Text);
                        al.telefono = this.TextBoxTelefono.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.celular = TextBoxCelular.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.direccion = txtDir.Text.ToString().Trim();
                        al.email = txtCorreo.Text.ToString();
                        al.activo = true;

                        //int verif = 0;

                        if (inst.modificarAlumno(al))
                        {
                            MessageBox.Show("Alumno modificado con Exito");
                            this.coop_alumno_GetAllTableAdapter1.Fill(this.escuelaDataSet.coop_alumno_GetAll);
                            
                            // TODO: esta línea de código carga datos en la tabla 'escuelaDataSet.alumnos' Puede moverla o quitarla según sea necesario.
                            //this.alumnosTableAdapter.Fill(this.escuelaDataSet.alumnos);
                        }
                        else
                        {
                            MessageBox.Show("Error al modificar alumno. Verifique los datos ingresados");
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error al modificar alumno " + ex);
                    }
                    break;
                    #endregion
                
                #region borrar
                case 3:
                 try
                    {
                        Alumno al = new Alumno();
                        al.id = Convert.ToInt32(this.maskedNroAl.Text.Trim());
                        al.nombre = this.txtNom.Text.ToString().Trim();
                        al.apellido = this.txtApe.Text.ToString().Trim();
                        al.dni = this.txtDNI.Text.ToString().Replace(".", "").Trim();
                        al.fechaDeNacimiento= Convert.ToDateTime(this.maskedFecNac.Text);
                        al.fechaDeIngreso = Convert.ToDateTime(this.TextBoxfecIng.Text);
                        al.telefono = this.TextBoxTelefono.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.celular = TextBoxCelular.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.direccion = txtDir.Text.ToString().Trim();
                        al.email = txtCorreo.Text.ToString();
                        al.activo = true;

                        //int verif = 0;

                        if (inst.eliminarAlumno(al))
                        {
                            MessageBox.Show("Alumno eliminado con Exito");
                            this.coop_alumno_GetAllTableAdapter1.Fill(this.escuelaDataSet.coop_alumno_GetAll);
                        }
                        else
                        {
                            MessageBox.Show("Error al eliminar alumno. Verifique los datos ingresados");
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error al eliminar alumno " + ex);
                    }
                    break;
                #endregion
                #region Buscar
                case 4:
                    string where = null;

                    //filtro dni
                    string dni = null;
                    try
                    {
                        //nro alumno
                        string nroAl = null;
                        if (this.maskedNroAl.Text != null && this.maskedNroAl.Text.Trim() != "")
                        {
                            where = where + "idAlumno = " + this.maskedNroAl.Text.Trim().ToString() + " and ";
                            //where = where + "idAlumno = 1 ";
                        }
                        //DNI
                        if (this.txtDNI.Text.Replace(".", "").Trim() != null && this.txtDNI.Text.Replace(".", "").Trim() != "")
                        {
                            where = where + " dni like '%" + this.txtDNI.Text.Replace(".", "").Trim() + "%' and ";
                        }
                        //Nombre
                        if (this.txtNom.Text != null && this.txtNom.Text.Trim() != "")
                        {
                            where = where + " nombre like '%" + this.txtNom.Text.Trim() + "%' and ";
                        }
                        //Apellido
                        if (this.txtApe.Text != null && this.txtApe.Text.Trim() != "")
                        {
                            where = where + " apellido like '%" + this.txtApe.Text.Trim() + "%' and ";
                        }
                        ////Fecha de nacimiento
                        //if (this.maskedFecNac.Text != null && this.maskedFecNac.Text.Trim() != "")
                        //{
                        //    where = where + "and fec_nacimiento like '%" + this.maskedFecNac.Text.Trim() + "%' ";
                        //}
                        ////Fecha de ingreso
                        //if (this.TextBoxfecIng.Text != null && this.TextBoxfecIng.Text.Trim() != "")
                        //{
                        //    where = where + "and fec_ingreso like '%" + this.TextBoxfecIng.Text.Trim() + "%' ";
                        //}
                        ////Fecha de ingreso
                        //if (this.TextBoxfecIng.Text != null && this.TextBoxfecIng.Text.Trim() != "")
                        //{
                        //    where = where + "and fec_ingreso like '%" + this.TextBoxfecIng.Text.Trim() + "%' ";
                        //}

                        if (where.Trim().Length > 3)
                            where = where.Substring(0, where.Length - 5);


                        //alumnosBindingSource.Filter = where;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error al buscar usuario: " + ex.Message, "Error");
                    }

                    break;
                #endregion
            }
        }

        protected void limpiarBox()
        {
            this.txtDNI.Clear();
            this.maskedNroAl.Clear();
            this.txtDNI.Clear();
            this.txtNom.Clear();
            this.txtApe.Clear();
            this.TextBoxTelefono.Clear();
            this.TextBoxCelular.Clear();
            this.maskedFecNac.ResetText();
            
            //this.maskedfecIng.Clear();
            this.txtDir.Clear();
            this.txtCorreo.Clear();
        }
        
        protected void enableBox()
        {
            this.txtDNI.Enabled = true;
            this.maskedNroAl.Enabled = true;
            this.txtDNI.Enabled = true;
            this.txtNom.Enabled = true;
            this.txtApe.Enabled = true;
            this.TextBoxTelefono.Enabled = true;
            this.TextBoxCelular.Enabled = true;
            this.maskedFecNac.Enabled = true;
            this.TextBoxfecIng.Enabled = true;
            this.txtDir.Enabled = true;
            this.txtCorreo.Enabled = true;
        }

        protected void disableBox()
        {
            this.txtDNI.Enabled=false;
            this.maskedNroAl.Enabled = false;
            this.txtDNI.Enabled = false;
            this.txtNom.Enabled = false;
            this.txtApe.Enabled = false;
            this.TextBoxTelefono.Enabled = false;
            this.TextBoxCelular.Enabled = false;
            this.maskedFecNac.Enabled = false;
            this.TextBoxfecIng.Enabled = false;
            this.txtDir.Enabled = false;
            this.txtCorreo.Enabled = false;
        }
        protected void disableBtn()
        {
            this.Aceptar.Enabled = true;
            this.Cancelar.Enabled = true;
            this.Nuevo.Enabled = false;
            this.Editar.Enabled = false;
            this.Borrar.Enabled = false;
            this.Buscar.Enabled = false;
            this.VerCursos.Enabled = false;
            this.Pagos.Enabled = false;
            this.Cerrar.Enabled = false;

        }

        protected void enableBtn()
        {
            this.Aceptar.Enabled = false;
            this.Cancelar.Enabled = false;
            this.Nuevo.Enabled = true;
            this.Editar.Enabled = true;
            this.Borrar.Enabled = true;
            this.Buscar.Enabled = true;
            this.VerCursos.Enabled = true;
            this.Pagos.Enabled = true;
            this.Cerrar.Enabled = true;
        }

        private void Editar_Click(object sender, EventArgs e)
        {
            if (this.maskedNroAl.Text != null && this.maskedNroAl.Text.Trim() != "")
            {
                acep = 2;
                enableBox();
                disableBtn();
                this.maskedNroAl.Enabled = false;
            }
            else
            {
                MessageBox.Show("Debe Seleccionar un alunmo", "Advertencia");
            }

        }

        private void button3_Click(object sender, EventArgs e)
        {

            if (this.maskedNroAl.Text != "")
            {
                try
                {
                    int idAlumno = Convert.ToInt32(this.maskedNroAl.Text.ToString().Trim());
                    string nombre = this.txtNom.Text.ToString().Trim();
                    string apellido = this.txtApe.Text.ToString().Trim();
                    cusrsosAlumnos ca = new cusrsosAlumnos(idAlumno, nombre, apellido);
                    ca.Show(this);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Excepcion buscando cursos del alumno " + ex.Message, "ERROR");
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar un alumno", "Atencion");
            }
                
        }

        private void Cerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

      
        private void enlazarDataGrid()
        {
            try
            {
                //texto
                this.maskedNroAl.DataBindings.Add("Text", dataGridView1.DataSource, "id");
                this.txtDNI.DataBindings.Add("Text", dataGridView1.DataSource, "dni");
                this.txtNom.DataBindings.Add("Text", dataGridView1.DataSource, "nombre");
                this.txtApe.DataBindings.Add("Text", dataGridView1.DataSource, "apellido");
                this.TextBoxTelefono.DataBindings.Add("Text", dataGridView1.DataSource, "telefono");
                this.TextBoxCelular.DataBindings.Add("Text", dataGridView1.DataSource, "celular");
                //direccon
                this.txtDir.DataBindings.Add("Text", dataGridView1.DataSource, "direccion");
                this.txtCorreo.DataBindings.Add("Text", dataGridView1.DataSource, "email");

                //Combo
                this.maskedFecNac.DataBindings.Add("Text", dataGridView1.DataSource, "fecha_nacimiento");
                this.TextBoxfecIng.DataBindings.Add("Text", dataGridView1.DataSource, "fecha_ingreso");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error enlazando datos al DataGrid", "Error");
            }


        }

        private void Pagos_Click(object sender, EventArgs e)
        {
            try
            {
                PagosAlumnosForm pa = new PagosAlumnosForm(this.inst, Convert.ToInt32(this.maskedNroAl.Text.Trim()));
                pa.Show(this);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error abriendo formulario. " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void VerCursos_Click(object sender, EventArgs e)
        {
            try
            {
                int idalumno = Convert.ToInt32(this.maskedNroAl.Text.Trim());
                String nombre = this.txtNom.Text.Trim();
                String apellido = this.txtApe.Text.Trim();
                cusrsosAlumnos caf = new cusrsosAlumnos(idalumno, nombre, apellido);
                caf.Show(this);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error abriendo formulario. " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void txtDir_TextChanged(object sender, EventArgs e)
        {

        }

        private void Cerrar_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }

        
               
    }
}
